Innovations in data communications technology, fueled by bandwidth-intensive applications, have led to a ten-fold improvement in networking hardware throughput occurring about every four years. These network performance improvements, which have increased from 10 Megabits per second (Mbps) to 100 Mbps, and now to 1-Gigabit per second (Gbps) and 10-Gbps, have outpaced the capability of central processing units (CPUs). To compensate for this dilemma and to free up CPU resources to handle general computing tasks, offloading Transmission Control Protocol/Internet Protocol (TCP/IP) functionality to dedicated network processing hardware is a fundamental improvement. TCP/IP chimney offload maximizes utilization of host CPU resources for application workloads, for example, on Gigabit and multi-Gigabit networks.
Converged network interface devices are generally utilized to integrate a plurality of different types of network traffic into one physical network. Although there may be instances when the quality of service (QoS) requirements for the different types of traffic are consistent, it is often the case that these QoS requirements are inconsistent with each other. Management traffic, for example, may require guaranteed delivery regardless of traffic conditions. Converged network interface devices may perform protocol acceleration and protocol processing beyond OSI layer 2 and may require considerable computational power. Certain types of traffic such as clustering traffic may require low latency. Storage traffic, for example, may require efficient guaranteed delivery with varying bursty traffic loads. Some types of traffic such as critical networking traffic may require varying levels of prioritization, while other networking traffic may require best effort.
Clustering traffic may use proprietary or standardized clustering technologies. Storage traffic may use fiber channel, for example, while networking traffic may use Ethernet. In many cases, management traffic may utilize a separate out of band management network to guarantee delivery and avoid mixing it with the user Ethernet network. Each of these separate networks may be specifically designed to guarantee the quality of service required for the payload it carries so that there are no other traffic types with conflicting QoS requirements trying to share the same network. When consolidating all these networks over a single network that carries all traffic types, the converged network may provide similar QoS as guaranteed by the physically separate networks.
Congestion avoidance is an algorithm that may be utilized, for example, by TCP based traffic in conjunction with slow start to minimize the effects of lost packets. Congestion may occur when a device may receive more TCP segments at its input than it may be able to adequately process with some minimal acceptable delay. Congestion may also occur when TCP segments transition from a faster transport infrastructure to a slower transport infrastructure. In this regard, the network device at the edge of the faster transport infrastructure and the slower transport infrastructure may become a bottleneck. Congestion may also occur in the infrastructure when traffic from multiple sources converges on a link that can not carry the aggregated load.
Memory bandwidth has not scaled at the same pace as network bandwidth, and as a result, networking devices with external memory are difficult and expensive to build. The buffer memories embedded within the networking device may have the required memory bandwidth to buffer networking traffic, but since the buffer memory has to be internal to the device, whether a switching device or a network interface device, its size is usually considerably smaller than external memory, traditionally used for lower speed devices.
Buffer memory in packet networks typically needs to compensate for the round trip time of the network along with some control loop elements, typically in both ends but also in the infrastructure. Aggravating the problems even further may be the trend of shifting from external to internal memories, as it may reduce the available buffer space. This severe reduction in buffer space may severely impact the TCP flow control, the clear predominant protocol that is used for the vast majority of network traffic and potentially other application level flow controls or any other measures used. Some storage and inter-processor communication traffic may not use TCP. Such traffic may use networks with link flow control operating below the transport layer, for example, Infiniband or Fibre Channel. The addition of congestion management to Ethernet may enable Ethernet to carry such traffic.
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with some aspects of the present invention as set forth in the remainder of the present application with reference to the drawings.